package com.atguigu.mvc.handler;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * SpringMVC 对处理请求的类并没有特殊要求，只要是 POJO 即可。我们自己习惯上有两种命名方式：
 *
 * XxxHandler：意思是 Xxx 处理器的意思
 * XxxController：意思是 Xxx 控制器的意思
 */
@Controller
public class Operation01Handler {

    private Logger logger = LoggerFactory.getLogger(this.getClass());

    // 浏览器访问地址如下所示：
    // http://localhsot:8080/demo/
    // context path 后面具体的请求地址是：/
    // 通过 @RequestMapping 注解可以在具体请求地址（/）和处理这个请求的方法之间建立映射关系
    // 有了这个映射关系，浏览器访问这个具体地址，SpringMVC 就会来调用这个映射的方法
    @RequestMapping("/")
    public String showIndex() {

        // 返回现在即将要前往的目标页面的逻辑视图
        // 物理视图：视图前缀+逻辑视图+视图后缀
        // SpringMVC 得到物理视图之后就去解析对应的 Thymeleaf 模板文件
        return "portal";
    }

    @RequestMapping("/helloWorld")
    public String helloWorld() {

        logger.debug("这里是一个HelloWorld，我是处理这个请求的Java方法！");

        // 返回逻辑视图名称
        return "target";
    }
}
